<?php

class Parser
{
	private $result;
	private $wsdl;
	
	/* Constructor */
	public function __Construct($arg_wsdl)
	{
		$this->wsdl = $arg_wsdl;
	}
	
	/* Set methode tbv de result set vanuit het SugarCRM */
	public function setResult($arg_result)
	{
		$this->result = $arg_result;
	}
	
	/* Get methodes */
	// Methode om de resultSet om te zetten naar student objecten en deze vervolgens terug te geven
	public function getStudentArray()
	{
		$studentenArray = array();
		foreach($this->result['entry_list'] as $record)
		{
			$array = nameValuePairToSimpleArray($record['name_value_list']);
			
			$student = new Student($this->wsdl);
			$student->setId($array['id']);
			$student->setStudent_nr($array['student_nr']);
			$student->setVoornaam($array['name']);
			$student->setAchternaam($array['last_name']);
			$student->setTussenvoegsel($array['betweentf']);
			$student->setOpleiding($array['education']);
			$student->setActief($array['active']);
			
			$studentenArray[] = $student;
		}
		
		return $studentenArray;
	}
	
	// Methode om de resultSet om te zetten naar docent objecten en deze vervolgens terug te geven
	public function getDocentArray()
	{
		$docentenArray = array();
		foreach($this->result['entry_list'] as $record)
		{
			$array = nameValuePairToSimpleArray($record['name_value_list']);
			
			$docent = new Docent($this->wsdl);
			$docent->setId($array['id']);
			$docent->setStamnummer($array['stamnummer']);
			$docent->setVoornaam($array['name']);
			$docent->setAchternaam($array['lastname']);
			$docent->setTussenvoegsel($array['betweentf']);
			$docent->setFunctie($array['functiontf']);
			$docent->setTelefoonnr($array['phone_number']);
			$docent->setOpleiding($array['education']);
			$docent->setActief($array['active']);
			
			$docentenArray[] = $docent;
		}
		
		return $docentenArray;
	}
	
	// Methode om de resultSet om te zetten naar bedrijf objecten en deze vervolgens terug te geven
	public function getBedrijfArray()
	{
		$bedrijvenArray = array();
		foreach($this->result['entry_list'] as $record)
		{
			$array = nameValuePairToSimpleArray($record['name_value_list']);
			
			$bedrijf = new Bedrijf($this->wsdl);
			
			$bedrijf->setId($array['id']);
			$bedrijf->setBedrijfsnaam($array['name']);
			$bedrijf->setStraatnaam($array['street']);
			$bedrijf->setHuisnummer($array['numberi']);
			$bedrijf->setToevoeging($array['adition']);
			$bedrijf->setPlaatsnaam($array['citytf']);
			$bedrijf->setPostcode($array['zipcode']);
			$bedrijf->setWebsite($array['website']);
			$bedrijf->setEmail($array['email']);
			$bedrijf->setTelefoonnr($array['phone_number']);
			$bedrijf->setOpmerkingen($array['description']);
			$bedrijf->setActief($array['active']);
			
			$bedrijvenArray[] = $bedrijf;
		}
		
		return $bedrijvenArray;
	}
	
	// Methode om de resultSet om te zetten naar Stage objecten en deze vervolgens terug te geven
	public function getStageArray()
	{
		$stageArray = array();
		foreach($this->result['entry_list'] as $record)
		{
			$array = nameValuePairToSimpleArray($record['name_value_list']);
			
			$stage = new Stage($this->wsdl);
			
			$stage->setId($array['id']);
			$stage->setVan($array['fromd']);
			$stage->setTot($array['tilld']);
			$stage->setStudent1($array['student1']);
			$stage->setStudent2($array['student2']);
			$stage->setBedrijfsbegeleider($array['bedrijf_id']);
			$stage->setDocent($array['docent_id']);
			$stage->setType($array['stagetype']);
			$stage->setStatus($array['status']);
			
			$stageArray[] = $stage;
		}
		
		return $stageArray;
	}
	
	public function getContactArray()
	{
		$contactArray = array();
		
		foreach($this->result['entry_list'] as $record)
		{
			$array = nameValuePairToSimpleArray($record['name_value_list']);
			
			$contact = new Contact($this->wsdl);
			
			$contact->setId($array['id']);
			$contact->setVoornaam($array['name']);
			$contact->setAchternaam($array['lastname']);
			$contact->setTussenvoegsel($array['betweentf']);
			$contact->setFunctie($array['functiontf']);
			$contact->setEmail($array['email']);
			$contact->setTelefoonnr($array['phone_number']);
			$contact->setOpmerkingen($array['description']);
			$contact->setBedrijf($array['bedrijf_id']);
			$contact->setContactpersoon($array['contactpersoon']);
			$contact->setBedrijfsbegeleider($array['bedrijfsbegeleider']);
			$contact->setActief($array['active']);
			
			$contactArray[] = $contact;
		}
		
		return $contactArray;
	}
}

?>